package team.seekers.hula.teamwork.tag.service;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import team.seekers.hula.auth.service.MindUtils;
import team.seekers.hula.teamwork.tag.entity.dao.TagDO;
import team.seekers.hula.teamwork.tag.entity.dto.TagAddDTO;
import team.seekers.hula.teamwork.tag.entity.dto.TagUpdateDTO;
import team.seekers.hula.teamwork.tag.entity.vo.TagListVO;
import team.seekers.hula.teamwork.tag.mapper.TagMapper;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 待办标签表 服务实现类
 * </p>
 *
 * @author hbc
 * @since 2021-09-03
 */
@Service
public class TagService extends ServiceImpl<TagMapper, TagDO>{

    public String add(TagAddDTO tagAddDTO) {
        TagDO tagDO = new TagDO();
        BeanUtils.copyProperties(tagAddDTO, tagDO);
        tagDO.setUserId(MindUtils.getUserId());
        save(tagDO);
        return tagDO.getId();
    }

    public void delete(String id) {
        // 直接删除
        removeById(id);
        // TODO 异步删除绑定的待办
    }

    public void update(TagUpdateDTO tagUpdateDTO) {
        TagDO tagDO = getById(tagUpdateDTO.getId());
        BeanUtils.copyProperties(tagUpdateDTO,tagDO);
        updateById(tagDO);
    }

    public List<TagListVO> listMine(String userId) {
        List<TagDO> list = lambdaQuery().eq(TagDO::getUserId,userId).list();
        List<TagListVO> tabList = new ArrayList<>();
        for (TagDO tagDO : list) {
            TagListVO tabListVO = new TagListVO();
            BeanUtils.copyProperties(tagDO,tabListVO);
            tabList.add(tabListVO);
        }
        return tabList;
    }
}
